#include "timer.h"

Timer::Timer( QLCDNumber* _parent ) :
    m_qlcdNumber( _parent ),
    m_secs( 0 )
{
    m_timer = new QTimer( _parent );

    connect( m_timer, SIGNAL(timeout() ), this, SLOT( displayTime() ) );

    // die eigentliche Uhr erstellt
    m_time = new QTime();
    m_time->setHMS(0,0,0,0); // Uhrformat auf 00:00:00 gesetzt
    QString text = m_time->toString("hh:mm:ss");
    _parent->display(text); // die Uhr wird zu Oberflaeche hinzugefuegt
}


Timer::~Timer()
{
    delete m_timer;
    delete m_time;
}


void Timer::displayTime()
{
    m_secs++;  // Sekunden werden hochgezaehlt
    QString text = m_time->addSecs( m_secs ).toString("hh:mm:ss");
    m_qlcdNumber->display(text); // Uhr wird auf die Oberflaeche gesetzt
}

void Timer::resetTimer()
{
    m_secs = 0;
    m_time->setHMS(0,0,0,0); // Neuinitialisierung der Zeit
    QString text = m_time->toString("hh:mm:ss");
    m_qlcdNumber->display(text); // Zeit wird auf die Stopuhroberflaeche gesetzt
    m_timer->start(1000); //alle 1000ms wird timeout() aufgerufen
}

void Timer::startTimer()
{
    m_timer->start(1000); // jede Sekunde wird Signal(timeout()) aufgerufen
                            // und entsprechen die Zeit in displayTime() hochgezaehlt
}

void Timer::stopTimer()
{
    m_timer->stop(); // Stopuhr wird gestoppt
}
